# 知乎发现的例子
import requests  # 导入requests库
import re  # 导入re库，用于使用正则表达式处理文本数据

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}  # 设置请求头信息，模拟浏览器访问

r = requests.get("https://www.zhihu.com/explore", headers=headers)  # 发起带有自定义请求头的GET请求，获取知乎探索页面的内容
pattern = re.compile('explore-feed.*?question_link.*?>(.*?)</a>', re.S)  # 使用正则表达式构建匹配模式
titles = re.findall(pattern, r.text)  # 在响应文本中通过正则表达式匹配获取问题标题
print(titles)  # 打印匹配到的问题标题列表

#图片、音频、视频这些文件本质上都是由二进制码组成的，由于有特定的保存格式和对应的解析方式，我们才可以看到这些形形色色的多媒体。所以，想要抓取它们，就要拿到它们的二进制码。
import requests  # 导入requests模块

r = requests.get("https://github.com/favicon.ico")  # 发起GET请求，获取网站图标
print(r.text)  # 打印获取到的网页内容
print(r.content)  # 打印获取到的二进制内容
with open('favicon.ico', 'wb') as f:  # 以二进制写入方式打开（或新建）文件favicon.ico
    f.write(r.content)  # 将获取到的二进制内容写入文件
#这里用了 open 方法，它的第一个参数是文件名称，第二个参数代表以二进制写的形式打开，可以向文件里写入二进制数据

r = requests.get("https://www.zhihu.com/explore")
print(r.text)

#但如果加上 headers 并加上 User-Agent 信息，那就没问题了：

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
}
r = requests.get("https://www.zhihu.com/explore", headers=headers)
print(r.text)